package com.kuang.login.model;

import com.alibaba.druid.util.StringUtils;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
import com.kuang.login.utils.FileUtils;

import java.io.IOException;
import java.util.ArrayList;

public class UserJsonModel {

    /**
     *
     * @param user
     * @return code 404表示当前已经存在，200表示注册成功，500表示异常
     * @throws IOException
     */
    public static int register(User user) {
        String jsonStr = null;
        try {
            jsonStr = FileUtils.readFile("user.json");
            ArrayList<User> users = new ArrayList<>();
            Gson gson = new Gson();
            //jsonStr为空，表示当前没人注册过
            if(!StringUtils.isEmpty(jsonStr)){
                //parse jsonstr
                JsonElement jsonElement = new JsonParser().parse(jsonStr);
                JsonArray jsonArray = jsonElement.getAsJsonArray();
                for (JsonElement element : jsonArray) {
                    User u = gson.fromJson(element, User.class);
                    if(user.getUsername().equals(u.getUsername())){
                        //强耦合
                        return 404;
                    }
                    users.add(u);
                }
            }
            // insert
            users.add(user);
            //写回json文件中
            FileUtils.writeFile("user.json", gson.toJson(users));
            return 200;
        } catch (IOException e) {
            e.printStackTrace();
            return 500;
        }
    }
}
